package 面试经典150题.哈希表;

import java.util.HashSet;

/**
 * @author tmh
 * @date 2024/4/15 15:07
 * @description
 */
public class T219存在重复元素II {

    public boolean containsNearbyDuplicate(int[] nums, int k) {
        //维护一个哈希表，里面始终最多包含 k 个元素，当出现重复值时则说明在 k 距离内存在重复元素
        HashSet<Integer> hashSet = new HashSet<>();
        for (int i = 0; i < nums.length; i++) {
            if (hashSet.contains(nums[i])) {
                return true;
            }
            hashSet.add(nums[i]);
            if (hashSet.size() > k) {
                hashSet.remove(nums[i - k]);
            }
        }
        return false;
    }

}
